package com.mryang.ladder;

import java.util.Scanner;

/**
 * @ClassName L1_017
 * @Description TODO 本题就请你计算一个给定整数到底有多二
 *                   一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。
 *                   如果这个数是负数，则程度增加0.5倍；如果还是个偶数，则再增加1倍。
 *                   例如数字-13142223336是个11位数，其中有3个2，并且是负数，也是偶数，
 *                   则它的犯二程度计算为：3/11×1.5×2×100%，约为81.82%。
 * @Author Genius
 * @Date 2021/1/27 15:25
 */
public class L1_017 {
    public static void main(String[] args) {
        String number = new Scanner(System.in).nextLine();
        int digitsCount = number.length(); // 位数计数
        int twoCount = 0;  // 2的个数
        double twoDegree = 1; // 2的程度
        int j = 0;

        // 判断是负数不是偶数
        if(number.charAt(0) == '-' && number.charAt(number.length()-1) % 2!=0){
            twoDegree = 1.5;
            j=1;
            digitsCount = digitsCount - 1;
        }
        // 判断是偶数不是负数
        if(number.charAt(number.length()-1) % 2==0 && number.charAt(0) != '-'){
            twoDegree = 1*2;
        }
        // 既是负数又是偶数
        if((number.charAt(number.length()-1) % 2==0) && number.charAt(0) == '-'){
            twoDegree = 1.5*2;
            digitsCount = digitsCount-1;
        }

        // 遍历得到“2”的个数
        for (int i = j; i < digitsCount; i++) {
            if(number.charAt(i)=='2'){
                twoCount++;
            }
        }
        // 输出
//        System.out.println("位数："+digitsCount+"  2的个数："+twoCount+"  2的程度："+twoDegree);
        double sum = (twoCount*1.0 / digitsCount) * twoDegree * 100;
//        System.out.println(sum);
//        sum = (float);
        System.out.printf("%.2f",sum);
        System.out.println("%");
    }
}
